#include <stdio.h>


//全局变量：不被任何函数包含       静态全局区
//能被所有函数访问
//少用全局变量
int b = 20;

//指针函数：返回值是指针的函数
int* func()
{
    //静态关键字：修饰的变量会被放在静态全局区中
    //静态全局区：程序结束才会释放
    //static: 1.静态变量只初始化一次
    //        2.延长变量的生命周期
    static  a = 10;
    a++;
    b++;
    return &a;

}

int add(int a,int b)
{
    return a + b;
}


int main()
{
    //局部变量的优先级高于全局变量
    //名字遮蔽
    // int b = 10;
    // int *p = func();
    // printf("%d\n",*p);
    // printf("%d\n",b);

    //函数指针：指向函数的指针
    int (*p)(int,int) = add;
    int c = p(1,2);
    printf("%d\n",c);
    return 0;
}